1. Field of the Invention
The present invention relates to the field of software functional testing and more particularly to recording and playback of application interactions for application testing.
2. Description of the Related Art
Software functional testing relates to the functional testing of a graphical user interface (GUI) coupled to an underlying software application. Conventional functional testing tools allow the end user to create, modify and run functional, distributed functional, regression and smoke tests for applications built using any of a wide variety of integrated development environments. In this regard, the conventional functional testing tool can generate a test script for a GUI in which elements of the GUI can be exercised both sequentially and conditionally. Through a thorough testing of the GUI of an application, the functional testing tool can automatically identify defects early, often and repeatably.
Web applications, like conventional GUI driven applications, benefit from software functional testing. Most Web applications consist of pages which a user can load using a Web browser to display information or to gather user inputs. Inputs can be submitted to the Web application to accomplish some tasks for the user. Thus, to functionally test a Web application can require the manual entry of input into the fields of a Web form. However, where one or more tasks in a Web application require massive user inputs and many mouse-clicks, repetitive test scenarios can become cumbersome, time consuming and error prone.
The ability to record and play back test scenarios in functionally testing a Web application provides several advantages. First, recording and playing back test scenarios for testing a Web application obviates the need to manually script test scenarios. Second, test scenarios can be automated so as to not require user interaction to increase consistency, accuracy and efficiency. Finally, automated test cases can run more frequently to ensure the ultimate quality of an application under test.
There are tools available today that automate the testing of Web applications; however, conventional testing tools which automate the testing of Web applications suffer from several deficiencies. First, these tools facilitate test automation by capturing data sent from the Web browser to the Web application. Resending the data resembles a repetitive task. Yet, this approach fails in cases where data is session dependent. Second, these tools are not an integral part of the Web application itself. Consequently, users must install additional computer program logic in order to automate a scenario.
As a third deficiency, conventional tools do not allow a user to play back scenarios in a current Web browser session. Rather, conventional tools require the creation and use of a separate Web browser session to play back a scenario. As a fourth deficiency, conventional tools require users to write scenarios manually. Finally, most of the commercially available testing tools capture mouse and keyboard activities instead of the actual data processed in consequence of the mouse and keyboard activities. Thus, these tools can be heavily dependent on the user interface of the application. This, in turn, limits the ability to use the mouse and keyboard during play back and defeats the portability of the scenario across different Web browsers and platforms. Any slight changes to the user interface can render the scenario useless.